#!/bin/bash

# 定义注释模板（约20行）
HEADER_COMMENT=$(cat <<EOF
/******************************************************************************
 * 文件名称: {FILENAME}
 * 创 建 者: {AUTHOR}
 * 创建日期: {CREATE_DATE}
 * 最后修改: {MODIFY_DATE}
 * 版 本 号: v1.0
 * 功能描述: 
 *   {DESCRIPTION}
 *
 * 设计思路:
 *   [可选：如采用单例模式、多线程安全策略等]
 *
 * 版权声明: 
 *  Copyright © {YEAR} {COMPANY}. All rights reserved.
 *  未经许可禁止商业用途或未授权分发。
 *
 * 修改历史:
 *  - {MODIFY_DATE} {AUTHOR}
 *    描述: [初始化版本]
 *
 * 依赖关系:
 *  - [依赖库/模块，如：Boost.Asio, OpenCV]
 ******************************************************************************/
EOF
)

# 配置参数（根据需求修改）
AUTHOR="YourName"
COMPANY="YourCompany"
YEAR=$(date +%Y)
DESCRIPTION="实现核心功能接口"

# 递归处理文件
find . -type f \( -name "*.h" -o -name "*.cpp" \) | while read file; do
    # 跳过已存在注释的文件（检查开头是否有 "/*"）
    if head -n 1 "$file" | grep -q "/\*"; then
        echo "跳过已注释文件: $file"
        continue
    fi

    # 动态替换占位符
    filename=$(basename "$file")
    create_date=$(date +%Y-%m-%d)
    modify_date=$(date +%Y-%m-%d)
    customized_comment=$(echo "$HEADER_COMMENT" | 
        sed "s/{FILENAME}/$filename/g;
             s/{AUTHOR}/$AUTHOR/g;
             s/{CREATE_DATE}/$create_date/g;
             s/{MODIFY_DATE}/$modify_date/g;
             s/{YEAR}/$YEAR/g;
             s/{COMPANY}/$COMPANY/g;
             s/{DESCRIPTION}/$DESCRIPTION/g")

    # 插入注释到文件头部
    tmp_file=$(mktemp)
    echo "$customized_comment" > "$tmp_file"
    cat "$file" >> "$tmp_file"
    mv "$tmp_file" "$file"
    echo "已添加注释: $file"
done